Fixed a get/put_page mismatch for guest L2 pages. Sometimes, when you
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 8 Dec 2005 14:18:13 +0000 (15:18 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 8 Dec 2005 14:18:13 +0000 (15:18 +0100)
commit064a4d414b4768dff82ae5bbd9e703b4442c214a
tree6145c7d7da8d42d2dcf03b7e063f0a07573464e1
parentf3fc4cd30470f504587c7d89f9c83a6cb544b69f
Fixed a get/put_page mismatch for guest L2 pages.  Sometimes, when you
destroy an OS when it is in real mode, there is an extra put_page in
domain_relinquish_resource.  This causes the page be freed with
non-zero type count.  With ASSERT enabled, hypervisor will crash; with
debug=n, on some machines, the system will hang in
alloc_domheap_pages, due to type_info being a union with cpumask and
not equal to 0.

Signed-off-by: Xiaofeng Ling <xiaofeng.ling@intel.com>
xen/arch/x86/vmx.c